Import various post-release fixes from upstream
authorSimon McVittie <smcv@debian.org>
Tue, 29 Nov 2016 01:22:24 +0000 (01:22 +0000)
committerSimon McVittie <smcv@debian.org>
Tue, 29 Nov 2016 01:22:24 +0000 (01:22 +0000)
debian/changelog
debian/patches/Terminate-individual-tests-after-half-an-hour.patch [deleted file]
debian/patches/debian/Terminate-individual-tests-after-half-an-hour.patch [new file with mode: 0644]
debian/patches/delta-compilation-Fix-leak.patch [new file with mode: 0644]
debian/patches/ostree-repo-traverse-Don-t-leak-floating-GVariant.patch [new file with mode: 0644]
debian/patches/ostree-repo-traverse-Remove-an-accidental-print-statement.patch [new file with mode: 0644]
debian/patches/pull-Don-t-leak-delta-superblock-variants.patch [new file with mode: 0644]
debian/patches/pull-scan_commit_object-don-t-load-variant-twice.patch [new file with mode: 0644]
debian/patches/pull_with_options-Don-t-leak-csum_v.patch [new file with mode: 0644]
debian/patches/series

index 9fcd183cd7027ddacb27de3b1aa820be1f113083..6b451d8cd26febe7e221b1bd07284d899842eb55 100644 (file)
@@ -6,6 +6,7 @@ ostree (2016.14-1) UNRELEASED; urgency=medium
     version was already present in oldstable
   * New upstream release
     - update symbols file for new ABI
+  * Import various post-release fixes from upstream
 
  -- Simon McVittie <smcv@debian.org>  Thu, 24 Nov 2016 10:47:35 +0000
 
diff --git a/debian/patches/Terminate-individual-tests-after-half-an-hour.patch b/debian/patches/Terminate-individual-tests-after-half-an-hour.patch
deleted file mode 100644 (file)
index 3b279bb..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Simon McVittie <smcv@debian.org>
-Date: Fri, 9 Sep 2016 08:23:36 +0100
-Subject: Terminate individual tests after half an hour
-
-While using the Automake parallel test harness, if a test hangs for
-long enough for an external watchdog to kill the entire build process
-(as happens in Debian sbuild after 150 minutes with no activity on
-stdout/stderr), the logs will not be shown. If we make an individual
-test time out sooner, logs are more likely to be shown.
-
-Signed-off-by: Simon McVittie <smcv@debian.org>
----
- buildutil/tap-test | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/buildutil/tap-test b/buildutil/tap-test
-index 6b2eb5c..4971f0b 100755
---- a/buildutil/tap-test
-+++ b/buildutil/tap-test
-@@ -20,4 +20,4 @@ function cleanup () {
- }
- trap cleanup EXIT
- cd ${tempdir}
--${srcd}/${bn} -k --tap
-+timeout --kill-after=60 1800 ${srcd}/${bn} -k --tap
diff --git a/debian/patches/debian/Terminate-individual-tests-after-half-an-hour.patch b/debian/patches/debian/Terminate-individual-tests-after-half-an-hour.patch
new file mode 100644 (file)
index 0000000..33f660f
--- /dev/null
@@ -0,0 +1,28 @@
+From: Simon McVittie <smcv@debian.org>
+Date: Fri, 9 Sep 2016 08:23:36 +0100
+Subject: Terminate individual tests after half an hour
+
+While using the Automake parallel test harness, if a test hangs for
+long enough for an external watchdog to kill the entire build process
+(as happens in Debian sbuild after 150 minutes with no activity on
+stdout/stderr), the logs will not be shown. If we make an individual
+test time out sooner, logs are more likely to be shown.
+
+Signed-off-by: Simon McVittie <smcv@debian.org>
+---
+ buildutil/tap-test | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/buildutil/tap-test b/buildutil/tap-test
+index c8da31e..fd79122 100755
+--- a/buildutil/tap-test
++++ b/buildutil/tap-test
+@@ -19,7 +19,7 @@ function skip_cleanup() {
+     echo "Skipping cleanup of ${tempdir}"
+ }
+ cd ${tempdir}
+-${srcd}/${bn} -k --tap
++timeout --kill-after=60 1800 ${srcd}/${bn} -k --tap
+ rc=$?
+ case "${TEST_SKIP_CLEANUP:-}" in
+     no|"") cleanup ;;
diff --git a/debian/patches/delta-compilation-Fix-leak.patch b/debian/patches/delta-compilation-Fix-leak.patch
new file mode 100644 (file)
index 0000000..c7b06d8
--- /dev/null
@@ -0,0 +1,46 @@
+From: Alexander Larsson <alexl@redhat.com>
+Date: Mon, 28 Nov 2016 17:21:59 +0100
+Subject: delta compilation: Fix leak
+
+We need to ref-sik the new varian for g_autoptr to work
+
+Closes: #597
+Approved by: cgwalters
+Origin: upstream, 2016.15, commit:d57036f
+---
+ .../ostree-repo-static-delta-compilation.c         | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/libostree/ostree-repo-static-delta-compilation.c b/src/libostree/ostree-repo-static-delta-compilation.c
+index 4b0bc50..22c45e6 100644
+--- a/src/libostree/ostree-repo-static-delta-compilation.c
++++ b/src/libostree/ostree-repo-static-delta-compilation.c
+@@ -1532,17 +1532,17 @@ ostree_repo_static_delta_generate (OstreeRepo                   *self,
+     /* floating */ GVariant *to_csum_v =
+       ostree_checksum_to_bytes_v (to);
+-    delta_descriptor = g_variant_new ("(@a{sv}t@ay@ay@" OSTREE_COMMIT_GVARIANT_STRING "ay"
+-                                      "a" OSTREE_STATIC_DELTA_META_ENTRY_FORMAT
+-                                      "@a" OSTREE_STATIC_DELTA_FALLBACK_FORMAT ")",
+-                                      g_variant_builder_end (&metadata_builder),
+-                                      GUINT64_TO_BE (g_date_time_to_unix (now)),
+-                                      from_csum_v,
+-                                      to_csum_v,
+-                                      to_commit,
+-                                      g_variant_builder_new (G_VARIANT_TYPE ("ay")),
+-                                      part_headers,
+-                                      fallback_headers);
++    delta_descriptor = g_variant_ref_sink (g_variant_new ("(@a{sv}t@ay@ay@" OSTREE_COMMIT_GVARIANT_STRING "ay"
++                                                          "a" OSTREE_STATIC_DELTA_META_ENTRY_FORMAT
++                                                          "@a" OSTREE_STATIC_DELTA_FALLBACK_FORMAT ")",
++                                                          g_variant_builder_end (&metadata_builder),
++                                                          GUINT64_TO_BE (g_date_time_to_unix (now)),
++                                                          from_csum_v,
++                                                          to_csum_v,
++                                                          to_commit,
++                                                          g_variant_builder_new (G_VARIANT_TYPE ("ay")),
++                                                          part_headers,
++                                                          fallback_headers));
+     g_date_time_unref (now);
+   }
diff --git a/debian/patches/ostree-repo-traverse-Don-t-leak-floating-GVariant.patch b/debian/patches/ostree-repo-traverse-Don-t-leak-floating-GVariant.patch
new file mode 100644 (file)
index 0000000..e248e9e
--- /dev/null
@@ -0,0 +1,50 @@
+From: Alexander Larsson <alexl@redhat.com>
+Date: Mon, 28 Nov 2016 15:31:04 +0100
+Subject: ostree-repo-traverse: Don't leak floating GVariant
+
+ostree_object_name_serialize returns a floating ref, so we need
+to sink it before putting in the hashtable.
+
+Closes: #595
+Approved by: cgwalters
+Origin: upstream, 2016.15, commit:fc107e5
+---
+ src/libostree/ostree-repo-traverse.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/libostree/ostree-repo-traverse.c b/src/libostree/ostree-repo-traverse.c
+index e620a8a..46f8324 100644
+--- a/src/libostree/ostree-repo-traverse.c
++++ b/src/libostree/ostree-repo-traverse.c
+@@ -348,7 +348,7 @@ traverse_iter (OstreeRepo                          *repo,
+           ostree_repo_commit_traverse_iter_get_file (iter, &name, &checksum);
+           g_debug ("Found file object %s", checksum);
+-          key = ostree_object_name_serialize (checksum, OSTREE_OBJECT_TYPE_FILE);
++          key = g_variant_ref_sink (ostree_object_name_serialize (checksum, OSTREE_OBJECT_TYPE_FILE));
+           g_hash_table_replace (inout_reachable, key, key);
+           key = NULL;
+         }
+@@ -363,11 +363,11 @@ traverse_iter (OstreeRepo                          *repo,
+           g_debug ("Found dirtree object %s", content_checksum);
+           g_debug ("Found dirmeta object %s", meta_checksum);
+-          key = ostree_object_name_serialize (meta_checksum, OSTREE_OBJECT_TYPE_DIR_META);
++          key = g_variant_ref_sink (ostree_object_name_serialize (meta_checksum, OSTREE_OBJECT_TYPE_DIR_META));
+           g_hash_table_replace (inout_reachable, key, key);
+           key = NULL;
+-          key = ostree_object_name_serialize (content_checksum, OSTREE_OBJECT_TYPE_DIR_TREE);
++          key = g_variant_ref_sink (ostree_object_name_serialize (content_checksum, OSTREE_OBJECT_TYPE_DIR_TREE));
+           if (!g_hash_table_lookup (inout_reachable, key))
+             {
+               g_hash_table_replace (inout_reachable, key, key);
+@@ -463,7 +463,7 @@ ostree_repo_traverse_commit_union (OstreeRepo      *repo,
+       OstreeRepoCommitState commitstate;
+       gboolean ignore_missing_dirs = FALSE;
+-      key = ostree_object_name_serialize (commit_checksum, OSTREE_OBJECT_TYPE_COMMIT);
++      key = g_variant_ref_sink (ostree_object_name_serialize (commit_checksum, OSTREE_OBJECT_TYPE_COMMIT));
+       if (g_hash_table_contains (inout_reachable, key))
+         break;
diff --git a/debian/patches/ostree-repo-traverse-Remove-an-accidental-print-statement.patch b/debian/patches/ostree-repo-traverse-Remove-an-accidental-print-statement.patch
new file mode 100644 (file)
index 0000000..9870cc0
--- /dev/null
@@ -0,0 +1,24 @@
+From: "Jasper St. Pierre" <jstpierre@mecheye.net>
+Date: Wed, 23 Nov 2016 13:52:39 -0800
+Subject: ostree-repo-traverse: Remove an accidental print statement
+
+Closes: #594
+Approved by: jlebon
+Origin: upstream, 2016.15, commit:70d140d
+---
+ src/libostree/ostree-repo-traverse.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libostree/ostree-repo-traverse.c b/src/libostree/ostree-repo-traverse.c
+index 5d99476..e620a8a 100644
+--- a/src/libostree/ostree-repo-traverse.c
++++ b/src/libostree/ostree-repo-traverse.c
+@@ -407,7 +407,7 @@ traverse_dirtree (OstreeRepo           *repo,
+       if (ignore_missing_dirs &&
+           g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
+         {
+-          g_print ("Ignoring not-found dirmeta %s", checksum);
++          g_debug ("Ignoring not-found dirmeta %s", checksum);
+           ret = TRUE;
+         }
+       else
diff --git a/debian/patches/pull-Don-t-leak-delta-superblock-variants.patch b/debian/patches/pull-Don-t-leak-delta-superblock-variants.patch
new file mode 100644 (file)
index 0000000..bece305
--- /dev/null
@@ -0,0 +1,35 @@
+From: Alexander Larsson <alexl@redhat.com>
+Date: Mon, 28 Nov 2016 15:57:11 +0100
+Subject: pull: Don't leak delta superblock variants
+
+Closes: #596
+Approved by: cgwalters
+Origin: upstream, 2016.15, commit:36f7824
+---
+ src/libostree/ostree-repo-pull.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c
+index 303daec..ffa387a 100644
+--- a/src/libostree/ostree-repo-pull.c
++++ b/src/libostree/ostree-repo-pull.c
+@@ -1478,8 +1478,8 @@ request_static_delta_superblock_sync (OtPullData  *pull_data,
+           }
+       }
+-      ret_delta_superblock = g_variant_new_from_bytes ((GVariantType*)OSTREE_STATIC_DELTA_SUPERBLOCK_FORMAT,
+-                                                       delta_superblock_data, FALSE);
++      ret_delta_superblock = g_variant_ref_sink (g_variant_new_from_bytes ((GVariantType*)OSTREE_STATIC_DELTA_SUPERBLOCK_FORMAT,
++                                                                           delta_superblock_data, FALSE));
+     }
+   
+   ret = TRUE;
+@@ -2951,7 +2951,7 @@ ostree_repo_pull_with_options (OstreeRepo             *self,
+       g_autofree char *from_revision = NULL;
+       const char *ref = key;
+       const char *to_revision = value;
+-      GVariant *delta_superblock = NULL;
++      g_autoptr(GVariant) delta_superblock = NULL;
+       if (!ostree_repo_resolve_rev (pull_data->repo, ref, TRUE,
+                                     &from_revision, error))
diff --git a/debian/patches/pull-scan_commit_object-don-t-load-variant-twice.patch b/debian/patches/pull-scan_commit_object-don-t-load-variant-twice.patch
new file mode 100644 (file)
index 0000000..2b58038
--- /dev/null
@@ -0,0 +1,29 @@
+From: Alexander Larsson <alexl@redhat.com>
+Date: Mon, 28 Nov 2016 13:58:19 +0100
+Subject: pull: scan_commit_object() - don't load variant twice
+
+ostree_repo_load_commit already loaded the object, no need
+to load it twice.
+
+Closes: #595
+Approved by: cgwalters
+Origin: upstream, 2016.15, commit:c9b158e
+---
+ src/libostree/ostree-repo-pull.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c
+index 9e96079..6f32c77 100644
+--- a/src/libostree/ostree-repo-pull.c
++++ b/src/libostree/ostree-repo-pull.c
+@@ -1137,10 +1137,6 @@ scan_commit_object (OtPullData         *pull_data,
+   is_partial = pull_data->legacy_transaction_resuming
+     || (commitstate & OSTREE_REPO_COMMIT_STATE_PARTIAL) > 0;
+-  if (!ostree_repo_load_variant (pull_data->repo, OSTREE_OBJECT_TYPE_COMMIT, checksum,
+-                                 &commit, error))
+-    goto out;
+-
+   /* PARSE OSTREE_SERIALIZED_COMMIT_VARIANT */
+   g_variant_get_child (commit, 1, "@ay", &parent_csum);
+   if (g_variant_n_children (parent_csum) > 0)
diff --git a/debian/patches/pull_with_options-Don-t-leak-csum_v.patch b/debian/patches/pull_with_options-Don-t-leak-csum_v.patch
new file mode 100644 (file)
index 0000000..0345c14
--- /dev/null
@@ -0,0 +1,24 @@
+From: Alexander Larsson <alexl@redhat.com>
+Date: Mon, 28 Nov 2016 15:56:50 +0100
+Subject: pull_with_options: Don't leak csum_v
+
+Closes: #596
+Approved by: cgwalters
+Origin: upstream, 2016.15, commit:239cb14
+---
+ src/libostree/ostree-repo-pull.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libostree/ostree-repo-pull.c b/src/libostree/ostree-repo-pull.c
+index 6f32c77..303daec 100644
+--- a/src/libostree/ostree-repo-pull.c
++++ b/src/libostree/ostree-repo-pull.c
+@@ -2800,7 +2800,7 @@ ostree_repo_pull_with_options (OstreeRepo             *self,
+         for (i = 0; i < n; i++)
+           {
+             const char *delta;
+-            GVariant *csum_v = NULL;
++            g_autoptr(GVariant) csum_v = NULL;
+             guchar *csum_data = g_malloc (OSTREE_SHA256_DIGEST_LEN);
+             g_autoptr(GVariant) ref = g_variant_get_child_value (deltas, i);
index f9022895173ba3b6b5a48fbe219ea3e320b35e50..c90823f5939b81b037ee9d0d0fd328cf2dc26155 100644 (file)
@@ -1 +1,7 @@
-Terminate-individual-tests-after-half-an-hour.patch
+ostree-repo-traverse-Remove-an-accidental-print-statement.patch
+pull-scan_commit_object-don-t-load-variant-twice.patch
+ostree-repo-traverse-Don-t-leak-floating-GVariant.patch
+pull_with_options-Don-t-leak-csum_v.patch
+pull-Don-t-leak-delta-superblock-variants.patch
+delta-compilation-Fix-leak.patch
+debian/Terminate-individual-tests-after-half-an-hour.patch